<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/paginas/seguridad/ctndpaginasusuario.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
	<ui:define name="centrousuarios">
		<h:form id="formPerfiles">
			<table class="tables">

				<tr>
					<td class="pPanel"><p:panel header="Administrar Perfiles"
							toggleable="false" collapsed="false">
							<p:growl id="growllps" showDetail="true" life="3000"
								showSummary="false" />
							<h:outputText value="* " styleClass="asteriscoObligatorio" />
							<h:outputText
								value=" El asterisco indica que el campo es requerido."
								styleClass="outputTextFormulario" />
							<h:panelGrid columns="4" id="hpgPerfiles"
								styleClass="panelTDLeftFormulario">

								<h:outputLabel value="Nombre del Perfil : *"
									for="txt_nombres_ps"></h:outputLabel>
								<p:inputText id="txt_nombres_ps" required="true"
									label="Imgrese el nombre del Perfil"
									value="#{administrarPerfilesBean.perfil.perfDescripcion}" />
								<h:outputLabel value="Estado : *" for="som_opc_estado_ps"></h:outputLabel>
								<h:selectOneMenu styleClass="combos" id="som_opc_estado_ps"
									required="true"
									value="#{administrarPerfilesBean.perfil.perfEstado}">
									<f:selectItem itemLabel="Activo" itemValue="A" />
									<f:selectItem itemLabel="Inactivo" itemValue="I" />

								</h:selectOneMenu>
							</h:panelGrid>
							<h:panelGrid columns="3" styleClass="panelTDBotonFormulario">
								<p:commandButton value="Limpiar Campos" immediate="true"
									action="#{administrarPerfilesBean.limpiarCamposPerfil()}"
									update="hpgPerfiles" />

								<p:commandButton
									action="#{administrarPerfilesBean.guardarPerfil}"
									value="Agregar Registro"
									update="perfiles,perfilesTable,growllps,hpgPerfiles" />
								<p:commandButton
									action="#{administrarPerfilesBean.consultarPerfiles}"
									immediate="true" value="Refrescar Tabla"
									update="perfiles,perfilesTable" />
							</h:panelGrid>
						</p:panel></td>
				</tr>
				<tr>
					<td><p:outputPanel id="perfiles"
							styleClass="panelTDLeftFormulario">

							<p:dataTable id="perfilesTable"
								value="#{administrarPerfilesBean.perfiles}" var="perfil"
								paginator="true" rows="10" editable="true">
								<p:ajax event="rowEdit"
									listener="#{administrarPerfilesBean.onEditPerfil}"
									immediate="true" />
								<p:ajax event="rowEditCancel"
									listener="#{administrarPerfilesBean.onCancelPerfil}"
									immediate="true" />

								<p:column headerText="Nombre Perfil" style="width:24%">
									<p:cellEditor>
										<f:facet name="output">
											<h:outputText value="#{perfil.perfDescripcion}" />
										</f:facet>
										<f:facet name="input">
											<p:inputText value="#{perfil.perfDescripcion}"
												style="width:100%" />
										</f:facet>
									</p:cellEditor>
								</p:column>

								<p:column headerText="Estado" style="width:24%">
									<p:cellEditor>
										<f:facet name="output">
											<h:outputText
												value="#{perfil.perfEstado=='A'?'ACTIVO':'INACTIVO'}" />
										</f:facet>
										<f:facet name="input">
											<h:selectOneMenu styleClass="combos" id="som_opc_estadopsm"
												required="true" value="#{perfil.perfEstado}">
												<f:selectItem itemLabel="Activo" itemValue="A" />
												<f:selectItem itemLabel="Inactivo" itemValue="I" />
											</h:selectOneMenu>
										</f:facet>
									</p:cellEditor>
								</p:column>

								<p:column style="width:6%">
									<f:facet name="header">
										<h:outputText value="Edición" />
									</f:facet>
									<p:rowEditor />
								</p:column>
								<p:column style="width:6%">
									<f:facet name="header">
										<h:outputText value="Eliminar" />
									</f:facet>
									<p:commandButton update="perfilesTable" immediate="true"
										action="#{administrarPerfilesBean.deletPerfilAction(perfil)}"
										icon="ui-icon-close"><p:confirm header="Confirmación"
											message="Está seguro de eliminar?" icon="ui-icon-alert" />
									</p:commandButton>
									<p:confirmDialog global="true" showEffect="fade"
										hideEffect="explode">
										<p:commandButton value="Si" type="button"
											styleClass="ui-confirmdialog-yes" icon="ui-icon-check"
											update=":formPerfiles:growllps" />
										<p:commandButton value="No" type="button"
											styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
									</p:confirmDialog>
									<br />
								</p:column>
								<p:column style="width:6%">
									<f:facet name="header">
										<h:outputText value="Configuración de Perfiles" />
									</f:facet>
									<p:commandButton immediate="true"
										title="Asignar Elementos al perfil"
										update=":formPerfiles:pg_mp_elementos"
										action="#{administrarPerfilesBean.asignarPerfilSeleccionado}"
										oncomplete="wv_mp_elementos.show()" icon="ui-icon-gear">
										<f:setPropertyActionListener value="#{perfil}"
											target="#{administrarPerfilesBean.perfilSeleccionado}" />

									</p:commandButton>
									<br />
								</p:column>
							</p:dataTable>

						</p:outputPanel></td>
				</tr>
			</table>
			<p:dialog id="mp_elementos" position="center" width="800"
				style=" text-align: left;
	font-size: 12px;
	font-family: Verdana;"
				header="Asignación de Opciones y Permisos" height="400"
				widgetVar="wv_mp_elementos">
				<h:panelGrid id="pg_mp_elementos" columns="1" cellpadding="1"
					style="margin:0 auto;">

					<table width="500px;">
						<p:growl id="growl" showSummary="false" showDetail="true"
							sticky="true" />


						<tr>
							<td><p:panel>
									<table>
										<tr>
											<td class="panelTDLeftFormulario" colspan="2"><h:outputText
													value="Perfil Seleccionado: "
													styleClass="outputTextFormulario" /> <h:outputText
													value="#{administrarPerfilesBean.perfilSeleccionado.perfDescripcion}"
													styleClass="subTituloFormulario" /></td>

										</tr>
										<tr>
											<td class="panelTDLeftFormulario" colspan="2"><h:outputText
													value="* " styleClass="asteriscoObligatorio" /> <h:outputText
													value=" El asterisco indica que el campo es requerido."
													styleClass="outputTextFormulario" /></td>

										</tr>
										<tr>


											<td class="panelTDFormulario"><h:outputText value="* "
													styleClass="asteriscoObligatorio" /> <h:outputText
													value="Módulo:" styleClass="outputTextFormulario" /></td>
											<td class="panelTDLeftFormulario"><h:selectOneMenu
													styleClass="combos" id="som_modulo" required="true"
													title="Escoja un Módulo del Sistema"
													requiredMessage="Módulo#{comun_mensajes.campo_requerido}"
													value="#{administrarPerfilesBean.idModulo}">
													<f:selectItem
														itemLabel="#{comun_mensajes.valor_inicial_combo}"
														itemValue="#{comun_mensajes.inicializarASeleccione}" />
													<f:selectItems
														value="#{administrarPerfilesBean.listaModulos}"></f:selectItems>
													<p:ajax update="som_opc_opciones_perf"
														actionListener="#{administrarPerfilesBean.cargaOpciones}" />
												</h:selectOneMenu></td>
										</tr>

										<tr>
											<td class="panelTDFormulario"><h:outputText value="* "
													styleClass="asteriscoObligatorio" /> <h:outputText
													value="Opciones del Módulo:"
													styleClass="outputTextFormulario" /></td>
											<td class="panelTDLeftFormulario"><h:selectOneMenu
													styleClass="combos" id="som_opc_opciones_perf"
													title="Escoja una opción del Módulo Seleccionado"
													required="true"
													requiredMessage="Opciones del Módulo#{comun_mensajes.campo_requerido}"
													value="#{administrarPerfilesBean.idOpcion}">
													<f:selectItem
														itemLabel="#{comun_mensajes.valor_inicial_combo}"
														itemValue="#{comun_mensajes.inicializarASeleccione}" />

													<f:selectItems
														value="#{administrarPerfilesBean.listaOpciones}"></f:selectItems>
													<p:ajax
														update=":formPerfiles:opcPorAsigTable,:formPerfiles:opcAsigTable"
														listener="#{administrarPerfilesBean.consultarOpciones}" />
												</h:selectOneMenu></td>


										</tr>

										<tr>

											<td colspan="2" align="center">
												<table>
													<tr>
														<td class="panelTDLeftFormulario"><h:outputText
																value="Sub-Opciones Disponibles"
																styleClass="subTituloFormulario" /></td>
														<td class="panelTDLeftFormulario"><h:outputText
																value="Sub-Opciones Asignadas"
																styleClass="subTituloFormulario" /></td>
													</tr>
													<tr>


														<td class="panelTDFormulario"><p:dataTable
																style="width:300px;"
																emptyMessage="NO existen sub-opciones para asignar"
																id="opcPorAsigTable"
																value="#{administrarPerfilesBean.opcionesSistemas}"
																var="opcion" paginator="true" rows="5">

																<p:column headerText="Nombre Sub-Opción"
																	style="width:40%">
																	<h:outputText value="#{opcion.opsiNombre}" />

																</p:column>

																<p:column style="width:6%">
																	<f:facet name="header">
																		<h:outputText value="Asignar" />
																	</f:facet>
																	<p:commandButton value=">>"
																		update=":formPerfiles:opcPorAsigTable,:formPerfiles:opcAsigTable"
																		immediate="true"
																		action="#{administrarPerfilesBean.guardarOpcion}"
																		title="Asignar Elemento al Perfil"
																		>

																		<f:setPropertyActionListener value="#{opcion}"
																			target="#{administrarPerfilesBean.opcionSistema}" />
																	</p:commandButton>
																	<br />
																</p:column>

															</p:dataTable></td>

														<td class="panelTDLeftFormulario"><p:dataTable
																style="width:400px;" id="opcAsigTable"
																value="#{administrarPerfilesBean.opcionesSistemaPerfiles}"
																var="opcionAsignada" paginator="true" rows="5"
																emptyMessage="NO existen sub-opciones asignadas"
																editable="true">
																<p:ajax event="rowEdit"
																	listener="#{administrarPerfilesBean.onEditOpcion}"
																	immediate="true" />
																<p:ajax event="rowEditCancel"
																	listener="#{administrarPerfilesBean.onCancelOpcion}"
																	immediate="true" />

																<p:column headerText="Nombre Sub-Opción"
																	style="width:24%">
																	<p:cellEditor>
																		<f:facet name="output">
																			<h:outputText
																				value="#{opcionAsignada.seadOpcionesSistema.opsiNombre}" />
																		</f:facet>
																		<f:facet name="input">
																			<p:inputText
																				value="#{opcionAsignada.seadOpcionesSistema.opsiNombre}"
																				readonly="true" style="width:100%" />
																		</f:facet>
																	</p:cellEditor>
																</p:column>

																<p:column headerText="Permiso" style="width:24%">
																	<p:cellEditor>
																		<f:facet name="output">
																			<h:outputText
																				value="#{opcionAsignada.ospeLectEscr==0?'LECTURA':'ESCRITURA'}" />
																		</f:facet>
																		<f:facet name="input">
																			<h:selectOneMenu styleClass="combos"
																				id="som_opc_permisopsm" required="true"
																				value="#{opcionAsignada.ospeLectEscr}">
																				<f:selectItem itemLabel="LECTURA" itemValue="0" />
																				<f:selectItem itemLabel="ESCRITURA" itemValue="1" />
																			</h:selectOneMenu>
																		</f:facet>
																	</p:cellEditor>
																</p:column>

																<p:column style="width:6%">
																	<f:facet name="header">
																		<h:outputText value="Edición" />
																	</f:facet>
																	<p:rowEditor />
																</p:column>
																<p:column style="width:6%">
																	<f:facet name="header">
																		<h:outputText value="Eliminar" />
																	</f:facet>
																	<p:commandButton
																		update=":formPerfiles:opcPorAsigTable,:formPerfiles:opcAsigTable"
																		immediate="true"
																		action="#{administrarPerfilesBean.deleteOpcionAction(opcionAsignada)}"
																		title="Eliminar Elemento asignado al Perfil"
																		icon="ui-icon-close"></p:commandButton>
																	<br />
																</p:column>

															</p:dataTable></td>


													</tr>
												</table>
											</td>
										</tr>

									</table>
								</p:panel></td>
						</tr>



					</table>


				</h:panelGrid>
			</p:dialog>

		</h:form>
	</ui:define>

</ui:composition>